package com.molichuxing.gateway.bff.orders.entity.response;

import com.molichuxing.framework.dto.ResponseRootDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 专属里程订单详情vo
 * 
 * @author zoumingyu
 * @date 2019年9月19日
 *
 */
@Data
public class OrderExclusivelDetailsVo extends ResponseRootDto {
	private static final long serialVersionUID = -1710461714594402703L;

	@ApiModelProperty(value = "订单号")
	private Long orderCode;

	@ApiModelProperty(value = "订单状态（10: 待付款, 0: 已取消, 11: 待审核（仅主订单）, 12: 待提车, 13: 用车中, 15: 审核驳回（仅主订单）, 16: 退款中（仅主订单）, 17: 交易结束（仅主订单）, 30: 退租申请中, 31: 待商家确认, 32: 待还车, 33: 退租审批中, 34: 退租待缴费, 35: 退租退款中, 36: 退租已完成）")
	private Integer orderStatus;

	@ApiModelProperty(value = "订单状态str")
	private String orderStatusStr;
	
	@ApiModelProperty(value = "说明")
	private String explain;
	
	/**
	 * 品牌+车系+车型名称
	 */
	@ApiModelProperty(value = "商品名称")
	private String goodsName;

	@ApiModelProperty(value = "车辆图片")
	private String carImg;

	@ApiModelProperty(value = "车牌号")
	private String licencePlate;

	/**
	 * 用车方案（回购/不回购）/租期（XX期）/付款方式 （全款/月付）
	 */
	@ApiModelProperty(value = "规格信息")
	private String specific;

	@ApiModelProperty(value = "服务器当前时间")
	private LocalDateTime currentDate;

	@ApiModelProperty(value = "订单过期时间")
	private LocalDateTime expiryDate;

	@ApiModelProperty(value = "下单门店id")
	private Integer storeId;

	@ApiModelProperty(value = "下单门店名")
	private String storeName;

	@ApiModelProperty(value = "租期说明")
	private String periodsExplain;
	
	@ApiModelProperty(value = "付款方式（1：全款，2：分期）")
	private Integer paymentMethod;
	
	@ApiModelProperty(value = "提车须知（0：不显示，1：显示）")
	private Boolean deliveryNotice;
	
	@ApiModelProperty(value = "过户须知（0：不显示，1：显示）")
	private Boolean transferNotice = true;
	
	@ApiModelProperty(value = "费用明细")
	private List<CostDetailsVo> costs;

	@ApiModelProperty(value = "下单数据")
	private List<DataVo> orderDatas;

	@ApiModelProperty(value = "支付数据(首付)")
	private List<DataVo> payDatas;

	@ApiModelProperty(value = "取还车数据")
	private List<DataVo> carFlowDatas;

	@ApiModelProperty(value = "支付类型（1：订购，2：续订，3：加购，4：结算，5：还款，6：退租缴费）")
	private Integer payType;

	/**
	 * 分期：本次支付金额+保证金 <br/>
	 * 全款：租车费+保证金
	 */
	@ApiModelProperty(value = "应付金额/合计")
	private BigDecimal payableAmount;

	@ApiModelProperty(value = "按钮")
	private List<ButtonVo> buttons;
}
